/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package jobascjp;


// Which is a correct class?
/*
public abstract class Frob implements Frobnicate { 
    public abstract void twiddle(String s); // Original: public abstract void twiddle(String s){ } 
    // A: Fehler ... abstrakte Methoden haben keinen Body, Semikolon muesste sein!
}
*/

/*
public abstract class Frob implements Frobnicate { 
    // B: korrekt, abstrakte Klasse muss nichts selbst implementieren
}
*/

/*
public class Frob implements Frobnicate { // Original: public class Frob extends Frobnicate { 
    public void twiddle(String s){} // public void twiddle(Integer i){} 
    // C: fehlerhaft, Interface wird nicht extended, muesste  implements heissen, dazu passt der Parametertyp von twiddle nicht
}
*/

/*
public class Frob implements Frobnicate { 
    public void twiddle(String s){} // public void twiddle(Integer i){} 
    // D: fehlerhaft, Parametertyp passt nicht, String erwartet!
}
*/

public class Frob implements Frobnicate { 
    public void twiddle(String i){}
    public void twiddle(Integer s){}
    // E: korrekt, Interface-Methode wird implementiert und dazu noch ueberladen
}


